home *** CD-ROM | disk | FTP | other *** search
/ Cracking - A jak se proti němu bránit / Cracking-a-jak-se-proti-nemu-branit-covermount.bin / Priklady / Priklad 10 / DETECT10.ASM next >
Encoding:
Assembly Source File  |  2000-08-20  |  2.4 KB  |  76 lines

  1.  
  2.  
  3. .386
  4. .MODEL FLAT,STDCALL
  5. locals
  6. jumps
  7. UNICODE=0
  8. include w32.inc
  9.  
  10.  
  11. Extrn SetUnhandledExceptionFilter : PROC
  12.  
  13. .DATA
  14.  
  15. sprava1        db "Detekcia pomocou CreateFileA a ovladaca SIWDEBUG",0
  16. sprava3        db "Soft-Ice najdeny",0
  17. sprava2        db "Soft-Ice nenasiel",0
  18. odlozESP       dd 0                             ;sem uklada register ESP
  19. predchadzajuca dd 0                             ;sem uklada adresu predchadzajucej obsluhy SEH
  20. SIWDEBUG       db "\\.\SIWDEBUG",0              ;meno ovladaca Soft-Ice
  21.  
  22. .CODE
  23. Start:
  24.  
  25. ;----------------------------------------------------------------------------
  26. ;NASTAVI SEH PRE PRIPAD CHYBY
  27. ;----------------------------------------------------------------------------
  28.                 mov  [odlozESP],esp
  29.                 push offset chyba
  30.                 call SetUnhandledExceptionFilter
  31.                 mov  [predchadzajuca], eax
  32. ;----------------------------------------------------------------------------
  33.  
  34.                 call CreateFileA, OFFSET SIWDEBUG, FILE_FLAG_WRITE_THROUGH, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL
  35.                                                 ;snazi sa otvorit subor \\.\SIWDEBUG
  36.  
  37.                 call GetLastError               ;vrati cislo chyby (ak je Soft-Ice aktivny bude v EAX=32h, ak nie je bude EAX=02)
  38.  
  39.                 push eax                        ;ulozi navratovu hodnotu
  40.  
  41.  
  42. ;----------------------------------------------------------------------------
  43. ;NASTAVI PREDCHADZAJUCU OBSLUHU SEH
  44. ;----------------------------------------------------------------------------
  45.                 push dword ptr [predchadzajuca]
  46.                 call SetUnhandledExceptionFilter
  47. ;----------------------------------------------------------------------------
  48.  
  49.                 pop  eax                        ;obnovi navratovu hodnotu
  50.  
  51.                 cmp  eax, 32h                   ;testuje, ci je Soft-Ice aktivny v pamati
  52.                 jz   skok                       ;ak ano skoci
  53.  
  54.  
  55. continiue:
  56.                 call MessageBoxA,0, offset sprava2, offset sprava1,0
  57.                 call ExitProcess, -1
  58.  
  59. skok:
  60.  
  61.                 call MessageBoxA,0, offset sprava3, offset sprava1,0
  62.                 call ExitProcess, -1
  63.  
  64.  
  65.  
  66.  
  67. chyba:                                          ;nova obsluha SEH pre pripad chyby
  68.  
  69.                 mov  esp, [odlozESP]
  70.                 push offset continiue
  71.                 ret
  72.  
  73.  
  74. ends
  75. end Start
  76.